import http from '@/utils/http';

/**
 * 获取仓库列表
 * @param {Object} params - 查询参数 (分页, 筛选等)
 */
export function getWarehouseList(params = {}) {
  return http.get('/warehouses', { params });
}

/**
 * 创建仓库
 * @param {Object} data - 仓库数据
 */
export function addWarehouse(data) {
  return http.post('/warehouses', data);
}

/**
 * 获取仓库详情
 * @param {Number | String} id - 仓库ID
 */
export function getWarehouseDetail(id) {
  return http.get(`/warehouses/${id}`);
}

/**
 * 更新仓库
 * @param {Object} data - 仓库数据（包含ID）
 */
export function updateWarehouse(data) {
  const id = data.id;
  return http.put(`/warehouses/${id}`, data);
}

/**
 * 删除仓库 (或修改状态，取决于后端实现)
 * @param {Number | String} id - 仓库ID
 */
export function deleteWarehouse(id) {
  return http.delete(`/warehouses/${id}`);
}

/**
 * 获取指定仓库下的库位列表
 * @param {Object} params - 查询参数 (包含 warehouse_id, 分页, 筛选等)
 */
export function getLocationList(params = {}) {
  // 修改为使用后端正确的路径
  return http.get(`/warehouses/locations`, { params: params });
}

/**
 * 创建库位
 * @param {Object} data - 库位数据，包含 warehouse_id
 */
export function addLocation(data) {
  // 修改为使用后端正确的路径
  return http.post(`/warehouses/locations`, data);
}

/**
 * 更新库位
 * @param {Object} data - 库位数据（包含ID）
 */
export function updateLocation(data) {
  const id = data.id;
  // 修改为使用后端正确的路径
  return http.put(`/warehouses/locations/${id}`, data);
}

/**
 * 删除库位 (或修改状态)
 * @param {Number | String} id - 库位ID
 */
export function deleteLocation(id) {
  // 修改为使用后端正确的路径
  return http.delete(`/warehouses/locations/${id}`);
}

/**
 * 获取指定仓库的可用库位列表 (用于上架)
 * @param {Number|String} warehouseId 仓库ID
 * @param {Object} params 查询参数, 例如 { product_id: 123 }
 */
export function getAvailableLocations(warehouseId, params) {
  return http.get(`/warehouses/${warehouseId}/available-locations`, { params });
}

export default {
  getWarehouseList,
  addWarehouse,
  getWarehouseDetail,
  updateWarehouse,
  deleteWarehouse,
  getLocationList,
  addLocation,
  updateLocation,
  deleteLocation,
  getAvailableLocations,
}; 